diff options
Diffstat (limited to 'app/[lng]/evcp/(evcp)/pq-criteria/page.tsx')
| -rw-r--r-- | app/[lng]/evcp/(evcp)/pq-criteria/page.tsx | 132 |
1 files changed, 60 insertions, 72 deletions
diff --git a/app/[lng]/evcp/(evcp)/pq-criteria/page.tsx b/app/[lng]/evcp/(evcp)/pq-criteria/page.tsx index 20d16085..1a337cc9 100644 --- a/app/[lng]/evcp/(evcp)/pq-criteria/page.tsx +++ b/app/[lng]/evcp/(evcp)/pq-criteria/page.tsx @@ -1,73 +1,61 @@ -import * as React from "react" -import { type SearchParams } from "@/types/table" -import { getValidFilters } from "@/lib/data-table" -import { Skeleton } from "@/components/ui/skeleton" -import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" -import { Shell } from "@/components/shell" -import { searchParamsCache } from "@/lib/pq/validations" -import { getPQs } from "@/lib/pq/service" -import { PqsTable } from "@/lib/pq/table/pq-table" -import { ProjectSelectorWrapper } from "@/components/pq/project-select-wrapper" -import { InformationButton } from "@/components/information/information-button" -interface IndexPageProps { - searchParams: Promise<SearchParams> -} - -export default async function IndexPage(props: IndexPageProps) { - const searchParams = await props.searchParams - const search = searchParamsCache.parse(searchParams) - - // filters가 없는 경우를 처리 - - const validFilters = getValidFilters(search.filters) - - // onlyGeneral: true로 설정하여 일반 PQ 항목만 가져옴 - const promises = Promise.all([ - getPQs({ - ...search, - filters: validFilters, - }, null, true) - ]) - - return ( - <Shell className="gap-2"> - <div className="flex items-center justify-between"> - <div> - <div className="flex items-center gap-2"> - <h2 className="text-2xl font-bold tracking-tight"> - PQ 항목 관리 - </h2> - <InformationButton pagePath="evcp/pq-criteria" /> - </div> - {/* <p className="text-muted-foreground"> - 협력업체 등록을 위한, 협력업체가 제출할 PQ 항목을 관리할 수 있습니다. - </p> */} - </div> - <ProjectSelectorWrapper /> - </div> - - <React.Suspense fallback={<Skeleton className="h-7 w-52" />}> - {/* <DateRangePicker - triggerSize="sm" - triggerClassName="ml-auto w-56 sm:w-60" - align="end" - shallow={false} - /> */} - </React.Suspense> - - <React.Suspense - fallback={ - <DataTableSkeleton - columnCount={6} - searchableColumnCount={1} - filterableColumnCount={2} - cellWidths={["10rem", "40rem", "12rem", "12rem", "8rem", "8rem"]} - shrinkZero - /> - } - > - <PqsTable promises={promises}/> - </React.Suspense> - </Shell> - ) +import * as React from "react"
+import { type SearchParams } from "@/types/table"
+import { getValidFilters } from "@/lib/data-table"
+import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
+import { Shell } from "@/components/shell"
+import { searchParamsCache } from "@/lib/pq/validations"
+import { getPQLists } from "@/lib/pq/service"
+import { PqListsTable } from "@/lib/pq/table/pq-lists-table"
+import { getProjects } from "@/lib/pq/service"
+
+interface ProjectPageProps {
+ searchParams: Promise<SearchParams>
+}
+
+export default async function ProjectPage(props: ProjectPageProps) {
+ const searchParams = await props.searchParams
+ const search = searchParamsCache.parse(searchParams)
+
+ // filters가 없는 경우를 처리
+ const validFilters = getValidFilters(search.filters)
+
+ // // 프로젝트별 PQ 데이터 가져오기
+ const promises = Promise.all([
+ getPQLists({
+ ...search,
+ filters: validFilters,
+ }),
+ getProjects()
+ ])
+
+ return (
+ <Shell className="gap-2">
+ <div className="flex items-center justify-between">
+ <div>
+ <h2 className="text-2xl font-bold tracking-tight">
+ PQ 리스트 관리
+ </h2>
+ {/* <p className="text-muted-foreground">
+ 협력업체 등록을 위한, 협력업체가 제출할 PQ 항목을: 프로젝트별로 관리할 수 있습니다.
+ </p> */}
+ </div>
+ </div>
+
+ <React.Suspense
+ fallback={
+ <DataTableSkeleton
+ columnCount={6}
+ searchableColumnCount={1}
+ filterableColumnCount={2}
+ cellWidths={["10rem", "40rem", "12rem", "12rem", "8rem", "8rem"]}
+ shrinkZero
+ />
+ }
+ >
+ <PqListsTable
+ promises={promises}
+ />
+ </React.Suspense>
+ </Shell>
+ )
}
\ No newline at end of file |
